package com.byd.sealmanage.service;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.byd.sealmanage.modal.bo.ProcessParamVO;
import com.byd.sealmanage.modal.po.TbUser;

import java.util.Map;

public interface ProcessManageService {

    /**
     * 获取我的申请列表数据
     * @return
     */
    JSONObject getMyApplyDataService(ProcessParamVO processParamVO);

    /**
     * 获取流程详情页基本信息
     * @return
     */
    JSONObject getDetailBasicInfo(String trackId);

    /**
     * 获取刻制申请相关的印章
     * @param trackId
     * @return
     */
    JSONObject getApplySealInfo(String trackId);

    /**
     * 获取流程节点信息
     * @param trackId
     * @return
     */
    JSONObject getProcessNodeInfo(String trackId);

    /**
     * 获取我的待办页面数据
     * @param processParamVO
     * @return
     */
    JSONObject getMyNotDoTableData(ProcessParamVO processParamVO);

    /**
     * 刻制申请同意流程
     * @param map
     * @return
     */
    JSONObject agreeProcessService(Map<String,String> map, TbUser loginUser);

    /**
     * 驳回流程
     * @param map
     * @return
     */
    JSONObject rejectProcessService(Map<String,String> map,TbUser loginUser);

    /**
     * 流程驳回后重新提交
     * @param map
     * @return
     */
    JSONObject submitAgainService(Map<String,String> map,TbUser loginUser);

    /**
     * 流程转交
     * @param map
     * @return
     */
    JSONObject changeApprovePeopleService(Map<String,String> map,TbUser loginUser);

    /**
     * 流程撤回
     * @param map
     * @return
     */
    JSONObject backProcessService(Map<String,String> map);

    /**
     * 流程废止
     * @param map
     * @return
     */
    JSONObject stopProcessService(Map<String,String> map,TbUser loginUser);

    /**
     * 获取我的审批页面数据
     * @param processParamVO
     * @return
     */
    JSONObject getMyApprovedPageData(ProcessParamVO processParamVO);
}
